package com.gryffonx.Objects.PlayerCharacters;

/**
 * Base class that outlines common attributes for all character types, regardless of
 * what gaming system they are a part of.  Class is abstract, and should not be
 * instantiated.
 *
 * @author Erik Stell
 * @version 1.0
 */
public abstract class CharacterObject {

    private String name;
    private String race;
    private int strength;
    private int dexterity;
    private int constitution;
    private int charisma;
    private int wisdom;
    private int intelligence;
    private int age;
    private int height;
    private int weight;
    private int size;
    private String gender;
    private String eyes;
    private String hair;
    private String skin;
    private Object[] equipment; //array of equipment objects
    private Object[] totalMoney; //array of money values
    private Object[] languages; //array of language objects ?
    private Object[] spells; //array of spell objects

    /**
     * Returns the name of this character
     *
     * @return - String value of this characters name
     */
    public String getName() {
        return name;
    }

    /**
     * Sets the name of this character
     *
     * @param name - String value of the name to be set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Returns the race of this character
     *
     * @return - String value of this characters race
     */
    public String getRace() {
        return race;
    }

    /**
     * Sets the race of this character
     *
     * @param race - String value of the race to be set
     */
    public void setRace(String race) {
        this.race = race;
    }

    /**
     * Returns the Strength value of this character
     *
     * @return - Int value of this character's strength
     */
    public int getStrength() {
        return strength;
    }

    /**
     * Sets the Strength value of this character
     *
     * @param strength - Int value of the strength value to be set
     */
    public void setStrength(int strength) {
        this.strength = strength;
    }

    /**
     * Returns the Dexterity value of this character
     *
     * @return - Int value of this character's dexterity
     */
    public int getDexterity() {
        return dexterity;
    }

    /**
     * Sets the dexterity value of this character
     *
     * @param dexterity - Int value of the dexterity value to be set
     */
    public void setDexterity(int dexterity) {
        this.dexterity = dexterity;
    }

    /**
     * Returns the constitution value of this character
     *
     * @return - Int value of this character's constution
     */
    public int getConstitution() {
        return constitution;
    }

    /**
     * Sets the constitution value of this character
     *
     * @param constitution - Int value of the constitution value to be set
     */
    public void setConstitution(int constitution) {
        this.constitution = constitution;
    }

    /**
     * Returns the charisma value of this character
     *
     * @return - Int value of this character's charisma
     */
    public int getCharisma() {
        return charisma;
    }

    /**
     * Sets the charisma value of this character
     *
     * @param charisma - Int value of the charisma value to be set
     */
    public void setCharisma(int charisma) {
        this.charisma = charisma;
    }

    /**
     * Returns the wisdom value of this character
     *
     * @return - Int value of this character's wisdom
     */
    public int getWisdom() {
        return wisdom;
    }

    /**
     * Sets the wisdom value of this character
     *
     * @param wisdom - Int value of the wisdom value to be set
     */
    public void setWisdom(int wisdom) {
        this.wisdom = wisdom;
    }

    /**
     * Returns the intelligence value of this character
     *
     * @return - Int value of this character's intelligence
     */
    public int getIntelligence() {
        return intelligence;
    }

    /**
     * Sets the intelligence value of this character
     *
     * @param intelligence - Int value of the intelligence value to be set
     */
    public void setIntelligence(int intelligence) {
        this.intelligence = intelligence;
    }

    /**
     * Returns the age value of this character
     *
     * @return - Int value of this character's age
     */
    public int getAge() {
        return age;
    }

    /**
     * Sets the age value of this character
     *
     * @param age - Int value of the age value to be set
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * Returns the height value of this character
     *
     * @return - Int value of this character's height
     */
    public int getHeight() {
        return height;
    }

    /**
     * Sets the height value of this character
     *
     * @param height - Int value of the height value to be set
     */
    public void setHeight(int height) {
        this.height = height;
    }

    /**
     * Returns the weight value of this character
     *
     * @return - Int value of this character's weight
     */
    public int getWeight() {
        return weight;
    }

    /**
     * Sets the weight value of this character
     *
     * @param weight - Int value of the weight value to be set
     */
    public void setWeight(int weight) {
        this.weight = weight;
    }

    /**
     * Returns the size value of this character
     *
     * @return - Int value of this character's size
     */
    public int getSize() {
        return size;
    }

    /**
     * Sets the size value of this character
     *
     * @param size - Int value of the size value to be set
     */
    public void setSize(int size) {
        this.size = size;
    }

    /**
     * Returns the gender value of this character
     *
     * @return - Int value of this character's gender
     */
    public String getGender() {
        return gender;
    }

    /**
     * Sets the gender value of this character
     *
     * @param gender - Int value of the gender value to be set
     */
    public void setGender(String gender) {
        this.gender = gender;
    }

    /**
     * Returns the eyes value of this character
     *
     * @return - Int value of this character's eye color
     */
    public String getEyes() {
        return eyes;
    }

    /**
     * Sets the eyes value of this character
     *
     * @param eyes - Int value of the eyes value to be set
     */
    public void setEyes(String eyes) {
        this.eyes = eyes;
    }

    /**
     * Returns the hair value of this character
     *
     * @return - Int value of this character's hair color
     */
    public String getHair() {
        return hair;
    }

    /**
     * Sets the hair value of this character
     *
     * @param hair - Int value of the hair value to be set
     */
    public void setHair(String hair) {
        this.hair = hair;
    }

    /**
     * Returns the skin value of this character
     *
     * @return - Int value of this character's skin color
     */
    public String getSkin() {
        return skin;
    }

    /**
     * Sets the skin value of this character
     *
     * @param skin - Int value of the skin value to be set
     */
    public void setSkin(String skin) {
        this.skin = skin;
    }

    /**
     * Returns the Ojbect[] of equipment objects this character
     *
     * @return - Object[] of this character's total equipment
     */
    public Object[] getEquipment() {
        return equipment;
    }

    /**
     * Sets the equipment value of this character
     *
     * @param equipment - Object[] of equipment objects to be set
     */
    public void setEquipment(Object[] equipment) {
        this.equipment = equipment;
    }

    /**
     * Returns the Ojbect[] of money objects for this character
     *
     * @return - Object[] of this character's total money
     */
    public Object[] getTotalMoney() {
        return totalMoney;
    }

    /**
     * Sets the totalMoney value of this character
     *
     * @param totalMoney - Object[] of money objects to be set
     */
    public void setTotalMoney(Object[] totalMoney) {
        this.totalMoney = totalMoney;
    }

    /**
     * Returns the Ojbect[] of languages objects for this character
     *
     * @return - Object[] of this character's total languages spoken
     */
    public Object[] getLanguages() {
        return languages;
    }

    /**
     * Sets the languages value of this character
     *
     * @param languages - Object[] of language objects to be set
     */
    public void setLanguages(Object[] languages) {
        this.languages = languages;
    }

    /**
     * Returns the Ojbect[] of spell objects for this character
     *
     * @return - Object[] of this character's total number of spells
     */
    public Object[] getSpells() {
        return spells;
    }

    /**
     * Sets the spells value of this character
     *
     * @param spells - Object[] of spell objects to be set
     */
    public void setSpells(Object[] spells) {
        this.spells = spells;
    }
}
